Many present-day computer systems, such as personal computer systems, incorporate multimedia devices such as audio peripherals, motion video peripherals, graphics systems and the like. The multimedia devices are commonly implemented as add-in cards of desktop and portable computers or integrated circuit designs for installation on a system circuit board.
Audio peripherals are commonly available as digital audio systems using a standard Musical Instrument Device Interface (MIDI) serial communication protocol for performance of audio voice signals. One type of audio peripheral is a wavetable-type music synthesizer that uses classic filter, amplifier, and modulation circuits to produce many various musical sounds. A wavetable device synthesizes musical signals from multiple oscillation signals that are stored in a memory, sampled, and synthesized in a plurality of waves in rapid succession. Two fundamental components of a wavetable audio synthesis device are a memory for storing wavetable data and musical signal processing circuits, including a digital signal processor.
An important aspect of the performance of a wavetable audio synthesis device is the effectiveness of the data transfer path between the memory and the musical signal processing circuits. Some systems increase the bandwidth between the memory and the musical signal processing circuits by supplying the musical processing circuits with a local memory interface. However, supplying a local memory in combination with the audio circuits substantially increases the cost as size of the audio peripheral. Furthermore a system that includes a special local memory subsystem in combination with the audio peripheral complicates device installation and generally increases servicing and warranty costs to a manufacturer. In addition, the wavetable data must be downloaded to the local memory subsystem, complicating software handling of the audio peripheral and causing delays when data is replaced.
One technique for increasing the bandwidth of data transfers between the memory and the musical signal processing circuits is to transfer data using burst transmissions using a single address timing phase and multiple data phases.
Many advantages are gained by supplying the wavetable data in a standard system memory. First, the general procedure for handling data in a computer system is through the main system memory. Second, operating system software generally handles data in a most efficient manner through usage of the main system memory. Data entries from all peripheral storage devices, including magnetic disks, CD-ROM, and the like, are transferred through the main system memory.
In a wavetable cache design that utilizes a system memory for supplying wavetable data, several samples of data are typically transferred from the system memory to the audio peripheral for each monophonic synthesizer or voice. The group of samples is sufficient to process several frames of data for the voice. A frame is the sample period of a digital-to-analog converter (DAC) and is generally standardized to a duration of 1/44100 second. A frame-batch is a group of frames that are generally processed for a voice after the data samples for the voice are transferred from the system memory to the audio peripheral.
The effectiveness of the data transfer path between the memory and the musical signal processing circuits and therefore the performance of a wavetable audio synthesis device are affected by any patterns of wavetable data access that occur inherently or naturally, or may be forced to occur. For example, an audio digital signal processor (DSP) typically forms some voices such as voices associated with acoustic guitars, pianos, and many other instruments, using a looping access. A note played for these voices includes a signal having an initial rapidly-changing timbre for a specified duration, followed by a period of relative stability as the volume of sound produced by the instrument decays. During the period of stability of the timbre, the audio DSP repeatedly processes a group of data samples while a volume envelope is applied that reduces the amplitude of the voice to a level of zero.
One problem with a conventional wavetable audio synthesis device that receives wavetable data from a system memory by burst transmission is the handling of data bursts that extend beyond the end address of a loop data sample. Typically, burst transmission is attained through usage of hardware circuits that cancel data samples from the system memory that extend beyond a predetermined end address and circuits that insert the canceled samples prior to accessing samples from a starting address. These hardware circuits include buffers and control logic that disadvantageously consume a large area of integrated circuit in a wavetable audio synthesis device.
What is needed is an improved apparatus and technique for communicating data from the main system memory over a system bus to an audio device peripheral using burst transmission.